There are several advantages to dedicate a data visualization portfolio and 10-week effort to digital currency:
Massive and Robust data source: Blockchain is a public transaction log that exists as a distributed database, validated by its powerful algorithm.
Fitting data types: Blockchain data includes time and IP addresses, and can be updated frequently, which means it is useful for both the static and dynamic data visualizations.
Well-supported: I can save the entire blockchain file locally,use community-maintained tools to parse it, and keep the data up-to-date.
Policy-setting: Digital currencies are being used as store of value to fight inflation in turbulent economies such as Zimbabwe and Latin American countries. Central Banks are issuing experimental policies in response to the dessemination of digital currency and blockchain technology.
This paper will explore some data sources published by major Bitcoin exchanges and platforms as an market overview.
rectangle <- data.frame(xmin = as.POSIXct(c("2017-03-25")),
xmax = as.POSIXct(c("2017-10-21")),
ymin = -Inf,
ymax = Inf)
line <- ggplot(data=btc_price) +
geom_line(size=.25,
aes(Date, Value),
color="#325a8c") +
geom_vline(xintercept = as.POSIXct("2017-03-25"),
colour="#ff7575",
size=.5,
linetype="dotted",
alpha=.75) +
scale_y_continuous(name ="Bitcoin Market Price in USD",
breaks = (seq(0,6000,1000))
) +
scale_x_datetime(date_breaks = "1 year",
labels = seq(2009,2018,1),
expand=c(0,0)) +
ggtitle("Bitcoin Price",
subtitle = "experienced the greatest surge in history this year") +
labs(caption = "Source: Blockchain.com") +
annotate(geom="text",
x=as.POSIXct("2016-01-05"),
y=2200,
label="Surge started on Mar 25, 2017",
colour="#ff7575",
family="Avenir",
fontface="bold",
alpha=1) +
theme_jiye
line + geom_rect(data = rectangle, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
fill = "#ff7575", alpha = 0.1)
The price of bitcoin can increase or decrease drastically over a short period of time. This graph mainly serves as a priliminary evidence to pinpoint certain time points where a new policy or event may have impacted the price of Bitcoin.
# graph 2-1: nodes map
# map theme
theme_map <- theme(panel.grid.major.y = element_blank(),
panel.grid.major.x = element_blank(),
panel.background = element_blank(),
plot.title = element_text(size=24,
family = "Helvetica",
colour = "#3a3a3a",
face = "bold"),
plot.subtitle = element_text(size=12,
family = "Avenir",
colour = "#666666"),
axis.title.y = element_blank(),
axis.title.x = element_blank(),
axis.text.y = element_blank(),
axis.text.x = element_blank(),
axis.ticks.y = element_blank(),
axis.ticks.x = element_blank(),
legend.position = "none",
plot.caption = element_text(size=8,
family = "Avenir",
colour = "#666666",
hjust = 0
),
plot.margin = unit(c(1,0,0,0), "cm"))
# ISSUE: How to color code by country?
# ISSUE(RESOLVED): How to remove Antarctica?
mp <- NULL
mapWorld <- borders("world", colour="#FFFFFF", fill='grey75', alpha=0.6,
ylim = c(-50, 70)) # create a layer of borders
mp <- ggplot() + mapWorld
#Now Layer the cities on top
mp <- mp+ geom_point(aes(x=nodes$longitude, y=nodes$latitude) ,color="#fe5346", size=0.75, alpha=.25) +
geom_path(aes(x=nodes$longitude, y=nodes$latitude), color="#FF9900", size=.1, alpha=0.025,
linejoin = "bevel") +
ggtitle("Global Nodes Distribution",
subtitle = "is uneven across continents") +
labs(caption = "Source: BitNodes") +
theme_map
mp